package cn.kgc.ssm.commons;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

/**
 * @author 课工场
 * @date 2024/5/13
 * @description
 * 前端使用的时layui的组件库  在动态渲染数据时  需要有特定的数据格式
 * 当前统一响应结果 按照layui的要求进行设计
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)   //  java对象转换成json格式数据时 自动剔除为null的数据
public class ResponseResult {

    //  响应状态码   layui中  0 代表成功
    private Integer code;
    // 操作的提示信息   删除成功
    private String message;
    // 总条数    分页需要
    private Long count;
    // 分页数据   当前页数据
    private Object data;

    //  操作成功
    public static  ResponseResult  success(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(0);
        responseResult.setMessage("操作成功");
        return  responseResult;
    }

    // 操作失败
    public static  ResponseResult  fail(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(110);
        responseResult.setMessage("操作失败");
        return  responseResult;
    }

    // 异常
    public static  ResponseResult  error(){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(500);
        responseResult.setMessage("服务器繁忙,请刷新重试...");
        return  responseResult;
    }

    public ResponseResult  data(Object data){
        this.data = data;
        return this;
    }

    public ResponseResult  count(Long count){
        this.count = count;
        return this;
    }

    public ResponseResult  message(String message){
        this.message = message;
        return this;
    }

}
